package com.wicket.okrapp.biz.service.dto.common;
import com.wicket.okrapp.common.dto.BaseDto;
import io.swagger.annotations.ApiModelProperty;
import java.io.Serializable;
import java.util.Date;

import lombok.Data;
import java.util.Objects;
    
    
    /**
     * @desc TargetObjDto
     * @使用场景
     */
    @Data
    public class TargetObjDto extends BaseDto  implements Serializable {
      
    /**
     * 关联末级目标分类ID 
     */
    @ApiModelProperty("关联末级目标分类ID")
    private String	 correlationLastTargetCatId;

    /**
     * 归属父级指标ID 
     */
    @ApiModelProperty("归属父级指标ID")
    private String	 parentObjectiveId;

    /**
     * 冗余指标业务类型 NUMBER_GROWTH:数量增长型 NUMBER_DECLINE:数量降幅型 PERCENTAGE_GROWTH:百分比增长型 PERCENTAGE_DECLINE:百分比降幅型 PROGRESS:进度型 RATIO_GROWTH:比率增长型 RATIO_DECLINE:比率降幅型 SUBJECTIVE_QUALITATIVE:主观定性
     */
    @ApiModelProperty("冗余指标业务类型")
    private String	 targetValueType;

    /**
     * 冗余是否左侧比例型 TRUE:是 FALSE:否
     */
    @ApiModelProperty("冗余是否左侧比例型")
    private String	 isLeft;

    /**
     * 指标ID 
     */
    @ApiModelProperty("指标ID")
    private String	 objectiveId;

    /**
     * 指标标识 
     */
    @ApiModelProperty("指标标识")
    private String	 objectiveCode;

    /**
     * 指标名称 
     */
    @ApiModelProperty("指标名称")
    private String	 objectiveName;

    /**
     * 指标简称 
     */
    @ApiModelProperty("指标简称")
    private String	 objectiveShortName;

    /**
     * 指标模板ID 
     */
    @ApiModelProperty("指标模板ID")
    private String	 objectiveTemplateId;

    /**
     * 指标模板名称 
     */
    @ApiModelProperty("指标模板名称")
    private String	 objectiveTemplateName;

    /**
     * 冗余数字单位 
     */
    @ApiModelProperty("冗余数字单位")
    private Double	 digitalUnit;

    /**
     * 冗余单位 INDIVIDUAL:个 DOOR:门 TERM:项 PIECE:篇 YUAN:元 FEN:分 WAN_YUAN:万元 PERCENT:百分率
     */
    @ApiModelProperty("冗余单位")
    private String	 unit;

    /**
     * 层级 
     */
    @ApiModelProperty("层级")
    private Long	 levelNumber;

    /**
     * 被评对象目标周期ID 
     */
    @ApiModelProperty("被评对象目标周期ID")
    private String	 evaObjTargetCycleId;

    /**
     * 周期模式类型编码 FATHER_SON_CYCLE:父子周期 SINGLE_CYCLE:单周期 IRREGULAR_CYCLE:不规则周期
     */
    @ApiModelProperty("周期模式类型编码")
    private String	 periodicModeTypeCode;

    /**
     * 虚拟组织下部门ID 
     */
    @ApiModelProperty("虚拟组织下部门ID")
    private String	 deptId;

    /**
     * 组织内部门身份名称 
     */
    @ApiModelProperty("组织内部门身份名称")
    private String	 virtualOrgDeptStatus;

    /**
     * 虚拟组织成员就职记录ID 
     */
    @ApiModelProperty("虚拟组织成员就职记录ID")
    private String	 virtualOrgInductionRecordId;

    /**
     * 组内职务名称 
     */
    @ApiModelProperty("组内职务名称")
    private String	 virtualOrganizationPosition;
/**
     * 负责人就职记录ID 
     */
    @ApiModelProperty("负责人就职记录ID")
    private String	 principalInductionRecordId;

    /**
     * 负责人组内职务名称 
     */
    @ApiModelProperty("负责人组内职务名称")
    private String	 principalVirtualOrganizationPosition;

    /**
     * 主管就职记录ID 
     */
    @ApiModelProperty("主管就职记录ID")
    private String	 directorInductionRecordId;

    /**
     * 主管组内职务名称 
     */
    @ApiModelProperty("主管组内职务名称")
    private String	 directorVirtualOrganizationPosition;
/**
     * 责任主体ID 
     */
    @ApiModelProperty("责任主体ID ")
    private String	 dutyBodyId;

    /**
     * 责任主体名称 
     */
    @ApiModelProperty("责任主体名称 ")
    private String	 dutyBodyName;
/**
     * 冗余一级目标分类ID 
     */
    @ApiModelProperty("冗余一级目标分类ID")
    private String	 rootTargetCategoryId;

    /**
     * 冗余指标模板类型 QUALITATIVE:定性 RATION:定量
     */
    @ApiModelProperty("冗余指标模板类型")
    private String	 objectiveType;

    /**
     * 系统对接计算类型 CALCULATE:计算实际值 SCORE_AFTER_CALCULATE:计算实际值得分
     */
    @ApiModelProperty("系统对接计算类型")
    private String	 systemDocking;

    /**
     * 是否引用指标 TRUE:是 FALSE:否
     */
    @ApiModelProperty("是否引用指标")
    private String	 isReference;

    /**
     * 排序 
     */
    @ApiModelProperty("排序")
    private Long	 orderNumber;

    /**
     * 主体生命周期 CURRENTLY_VALID:当前有效 EDITING:正在编辑 ARCHIVING:历史存档
     */
    @ApiModelProperty("主体生命周期")
    private String	 subjectLifeCycle;

    /**
     * 批次下更新状态 NEW:本次新增 UNCHANGED:正常未变 REVISION:本次修订 ARCHIVE:本次存档
     */
    @ApiModelProperty("批次下更新状态")
    private String	 updateStatus;
/**
     * 是否向下分工 TRUE:是 FALSE:否
     */
    @ApiModelProperty("是否向下分工")
    private String	 createLowerIndicator;
/**
     * 负责人虚拟组织成员ID 
     */
    @ApiModelProperty("负责人虚拟组织成员ID")
    private String	 principalVirtualOrgMemberId;

    /**
     * 主管虚拟组织成员ID 
     */
    @ApiModelProperty("主管虚拟组织成员ID")
    private String	 directorVirtualOrgMemberId;
/**
     * 是否已完成 TRUE:是 FALSE:否
     */
    @ApiModelProperty("是否已完成")
    private String	 isComplete;
/**
     * 存档类型 NOT_ARCHIVE:未归档 TOBE_ARCHIVING:想归档 ARCHIVED:已归档
     */
    @ApiModelProperty("存档类型")
    private String	 archivngType;
/**
     * 个人账号 
     */
    @ApiModelProperty("个人账号")
    private String	 userId;
/**
     * 目标周期简称 
     */
    @ApiModelProperty("目标周期简称")
    private String	 cyclelAlias;

    /**
     * 目标周期名称 
     */
    @ApiModelProperty("目标周期名称")
    private String	 targetCycleName;
/**
     * 责任主体类型 PERSONAL:个人 DEPT:部门
     */
    @ApiModelProperty("责任主体类型")
    private String	 respBodyType;
/**
     * 指标编号 
     */
    @ApiModelProperty("指标编号")
    private String	 objectiveNumber;

    /**
     * 是否末级指标 TRUE:是 FALSE:否
     */
    @ApiModelProperty("是否末级指标")
    private String	 isLastObjective;

    /**
     * 冗余目标ID 
     */
    @ApiModelProperty("冗余目标ID")
    private String	 targetId;
/**
     * 是否用于一级部门 TRUE:是 FALSE:否
     */
    @ApiModelProperty("是否用于一级部门")
    private String	 isUseFirstDept;
/**
     * 指标汇报对象设置项编码 PRIMARY_TASK:一级建设任务 SECONDARY_TASK:二级建设任务 PRIMARY_OBSERVATION_POINT:二级以下建设任务或一级观测点 SECONDARY_OBSERVATION_POINT:二级观测点 OTHER_OBSERVATION_POINT:二级以下观测点
     */
    @ApiModelProperty("指标汇报对象设置项编码")
    private String	 reportObjectSetCode;

    /**
     * 虚拟组织ID 
     */
    @ApiModelProperty("虚拟组织ID")
    private String	 virtualOrgId;
/**
     * 是否开启自定义汇报 TRUE:是 FALSE:否
     */
    @ApiModelProperty("是否开启自定义汇报")
    private String	 isOpenCustomReport;
/**
     * 诊断值 
     */
    @ApiModelProperty("诊断值")
    private Double	 targetDiagnosticValue;

    /**
     * 权重分值 
     */
    @ApiModelProperty("权重分值")
    private Double	 weightScore;

    /**
     * 权重 
     */
    @ApiModelProperty("权重")
    private Double	 weightValue;

    /**
     * 归属父级目标分类ID 
     */
    @ApiModelProperty("归属父级目标分类ID")
    private String	 parentTargetCategoryId;
/**
     * 分管领导就职记录ID
     */
    @ApiModelProperty("分管领导就职记录ID")
    private String	 deptLeaderInductionRecordId;

    /**
     * 分管领导组内名称
     */
    @ApiModelProperty("分管领导组内名称")
    private String	 deptLeaderVirtualOrganizationPosition;
/**
     * 冗余评价模板ID 
     */
    @ApiModelProperty("冗余评价模板ID")
    private String	 evaluationTemplateId;

    /**
     * 个人排序 
     */
    @ApiModelProperty("个人排序")
    private Long	 personalOrderNumber;

    /**
     * 操作时间 
     */
    @ApiModelProperty("操作时间")
    private Date	 operateTime;

    /**
     * 创建时间 
     */
    @ApiModelProperty("创建时间")
    private Date	 createTime;
/**
     * 是否开启预算 TRUE:是 FALSE:否
     */
    @ApiModelProperty("是否开启预算")
    private String	 isUseBudget;
/**
     * 目标计划开始时间
     */
    @ApiModelProperty("目标计划开始时间")
    private Date	 cycleStartTime;

    /**
     * 目标计划结束时间
     */
    @ApiModelProperty("目标计划结束时间")
    private Date	 cycleEndTime;
@Override
  public boolean equals(Object o) {
      if (this == o) return true;
      if (o == null || getClass() != o.getClass()) return false;
      if (!super.equals(o)) return false;
      TargetObjDto that = (TargetObjDto) o;
      return  correlationLastTargetCatId == that.correlationLastTargetCatId&&parentObjectiveId == that.parentObjectiveId&&targetValueType == that.targetValueType&&isLeft == that.isLeft&&objectiveId == that.objectiveId&&objectiveCode == that.objectiveCode&&objectiveName == that.objectiveName&&objectiveShortName == that.objectiveShortName&&objectiveTemplateId == that.objectiveTemplateId&&objectiveTemplateName == that.objectiveTemplateName&&digitalUnit == that.digitalUnit&&unit == that.unit&&levelNumber == that.levelNumber&&evaObjTargetCycleId == that.evaObjTargetCycleId&&periodicModeTypeCode == that.periodicModeTypeCode&&deptId == that.deptId&&virtualOrgDeptStatus == that.virtualOrgDeptStatus&&virtualOrgInductionRecordId == that.virtualOrgInductionRecordId&&virtualOrganizationPosition == that.virtualOrganizationPosition&&principalInductionRecordId == that.principalInductionRecordId&&principalVirtualOrganizationPosition == that.principalVirtualOrganizationPosition&&directorInductionRecordId == that.directorInductionRecordId&&directorVirtualOrganizationPosition == that.directorVirtualOrganizationPosition&&dutyBodyId == that.dutyBodyId&&dutyBodyName == that.dutyBodyName&&rootTargetCategoryId == that.rootTargetCategoryId&&objectiveType == that.objectiveType&&systemDocking == that.systemDocking&&isReference == that.isReference&&orderNumber == that.orderNumber&&subjectLifeCycle == that.subjectLifeCycle&&updateStatus == that.updateStatus&&createLowerIndicator == that.createLowerIndicator&&principalVirtualOrgMemberId == that.principalVirtualOrgMemberId&&directorVirtualOrgMemberId == that.directorVirtualOrgMemberId&&isComplete == that.isComplete&&archivngType == that.archivngType&&userId == that.userId&&cyclelAlias == that.cyclelAlias&&targetCycleName == that.targetCycleName&&respBodyType == that.respBodyType&&objectiveNumber == that.objectiveNumber&&isLastObjective == that.isLastObjective&&targetId == that.targetId&&isUseFirstDept == that.isUseFirstDept&&reportObjectSetCode == that.reportObjectSetCode&&virtualOrgId == that.virtualOrgId&&isOpenCustomReport == that.isOpenCustomReport&&targetDiagnosticValue == that.targetDiagnosticValue&&weightScore == that.weightScore&&weightValue == that.weightValue&&parentTargetCategoryId == that.parentTargetCategoryId&&deptLeaderInductionRecordId == that.deptLeaderInductionRecordId&&deptLeaderVirtualOrganizationPosition == that.deptLeaderVirtualOrganizationPosition&&evaluationTemplateId == that.evaluationTemplateId&&personalOrderNumber == that.personalOrderNumber&&operateTime == that.operateTime&&createTime == that.createTime&&isUseBudget == that.isUseBudget&&cycleStartTime == that.cycleStartTime&&cycleEndTime == that.cycleEndTime;
    }
@Override
  public int hashCode() {
      return Objects.hash(super.hashCode(), correlationLastTargetCatId,parentObjectiveId,targetValueType,isLeft,objectiveId,objectiveCode,objectiveName,objectiveShortName,objectiveTemplateId,objectiveTemplateName,digitalUnit,unit,levelNumber,evaObjTargetCycleId,periodicModeTypeCode,deptId,virtualOrgDeptStatus,virtualOrgInductionRecordId,virtualOrganizationPosition,principalInductionRecordId,principalVirtualOrganizationPosition,directorInductionRecordId,directorVirtualOrganizationPosition,dutyBodyId,dutyBodyName,rootTargetCategoryId,objectiveType,systemDocking,isReference,orderNumber,subjectLifeCycle,updateStatus,createLowerIndicator,principalVirtualOrgMemberId,directorVirtualOrgMemberId,isComplete,archivngType,userId,cyclelAlias,targetCycleName,respBodyType,objectiveNumber,isLastObjective,targetId,isUseFirstDept,reportObjectSetCode,virtualOrgId,isOpenCustomReport,targetDiagnosticValue,weightScore,weightValue,parentTargetCategoryId,deptLeaderInductionRecordId,deptLeaderVirtualOrganizationPosition,evaluationTemplateId,personalOrderNumber,operateTime,createTime,isUseBudget,cycleStartTime,cycleEndTime);
    }
    
      

    }
   